// 陈科地买牛肉：有可能失败
// 聂仔欣做菜
// 做完之后开饭

function buy(name,food) {

    const random = Math.random();

    return new Promise((resolve,reject) => {
        setTimeout(()=> {
            // 成功和失败随机
            if (random <= 0.5) {
                resolve(food);
            } else {
                reject(food);
            } 
        },3000);
    }).finally(() => {
        console.log("买菜结束！")
    })
}

function cook(name) {
    const promise = buy("陈科地","牛肉");
    promise.then(res => {
        console.log(`${name}得到了${res}，准备做菜`);
        // 得到菜之后，开始做菜
        new Promise(resolve => {
            setTimeout(() => {
                resolve();
            },3000)
        }).then(res=> {
            console.log("菜做好了！大家快来吃饭！");
            
        });
    },res => {
        console.log(`${name}没有得到${res}，没有办法做菜`);
    })
}


cook("聂仔欣");

// Promise.then回调的缺点：
//   容易形成回调地狱！异步转同步的方案-> Promise的语法糖！！！